mirror of
https://github.com/apache/superset.git
synced 2026-04-20 00:24:38 +00:00
fix: excel sheet upload is not working (#10450)
* remove conflicts with csv upload * revert StringField * change description * remove redundant space * apply string approach
This commit is contained in:
@@ -263,10 +263,9 @@ class ExcelToDatabaseView(SimpleFormView):
|
||||
def form_get(self, form: ExcelToDatabaseForm) -> None:
|
||||
form.header.data = 0
|
||||
form.mangle_dupe_cols.data = True
|
||||
form.skipinitialspace.data = False
|
||||
form.decimal.data = "."
|
||||
form.if_exists.data = "fail"
|
||||
form.sheet_name = None
|
||||
form.sheet_name.data = ""
|
||||
|
||||
def form_post(self, form: ExcelToDatabaseForm) -> Response:
|
||||
database = form.con.data
|
||||
@@ -307,16 +306,23 @@ class ExcelToDatabaseView(SimpleFormView):
|
||||
database = (
|
||||
db.session.query(models.Database).filter_by(id=con.data.get("id")).one()
|
||||
)
|
||||
|
||||
# some params are not supported by pandas.read_excel (e.g. chunksize).
|
||||
# More can be found here:
|
||||
# https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_excel.html
|
||||
excel_to_df_kwargs = {
|
||||
"header": form.header.data if form.header.data else 0,
|
||||
"index_col": form.index_col.data,
|
||||
"mangle_dupe_cols": form.mangle_dupe_cols.data,
|
||||
"skipinitialspace": form.skipinitialspace.data,
|
||||
"skiprows": form.skiprows.data,
|
||||
"nrows": form.nrows.data,
|
||||
"sheet_name": form.sheet_name.data,
|
||||
"chunksize": 1000,
|
||||
"sheet_name": form.sheet_name.data if form.sheet_name.data else 0,
|
||||
"parse_dates": form.parse_dates.data,
|
||||
}
|
||||
if form.null_values.data:
|
||||
excel_to_df_kwargs["na_values"] = form.null_values.data
|
||||
excel_to_df_kwargs["keep_default_na"] = False
|
||||
|
||||
df_to_sql_kwargs = {
|
||||
"name": excel_table.table,
|
||||
"if_exists": form.if_exists.data,
|
||||
@@ -336,7 +342,7 @@ class ExcelToDatabaseView(SimpleFormView):
|
||||
# E.g. if hive was used to upload a excel, presto will be a better option
|
||||
# to explore the table.
|
||||
expore_database = database
|
||||
explore_database_id = database.get_extra().get("explore_database_id", None)
|
||||
explore_database_id = database.explore_database_id
|
||||
if explore_database_id:
|
||||
expore_database = (
|
||||
db.session.query(models.Database)
|
||||
|
||||
Reference in New Issue
Block a user