我成功地将google文档文件发送到google sheets中,电子表格能够正确填写(它将文本格式化为表格,非常整洁)
下面是我如何格式化文本的示例:
ID, NAME, MOBILE, CITY, COUNTRY, BIRTHDAY,
3, NameGoesHere1, 21 98658 5548, abcity, countryNameHere, 1998-05-02,
6, SomeoneElse Joined Here, 21 98535 1218, whereland, Far far away, 1989-11-15,
5, AnotherCustomer, 21 85482 5245, somecity, Somewhereland, 1999-08-04,
ID, PRICE, STOCK, ASDF, BASDF, CASDF,
ID, NAME, PRICE, DESCRIPTION,
2, pen, 1.5, The pen is mightier than the sword,
3, pencil, 1.0, Can be used to write,
4, RPG, 150.0, well that escalated quickly, huh,
EMPTY,
names,
goofs,
ID, FLAVOR,
(请注意,有两个空表,一个是“ID,PRICE,STOCK,ASDF,BASDF,CASDF”和“ID,FLAVOR”列,故意将它们留空)
通过在单元格中填充:
=IMPORTDATA("<<< <<<google drive url containing text goes here, just copy-paste>>> >>>")
我能够创建多个表格,其中选定的单元格位于第一个表格的左上角,并且该命令会自动将所有表格放入GoogleSheets格式。每个表都位于前一个表的下方,从列名开始。
我正在寻找一种方法,以在不同的google工作表页面中获取每个表,如下所示:
页面1:
ID, NAME, MOBILE, CITY, COUNTRY, BIRTHDAY,
3, NameGoesHere1, 21 98658 5548, abcity, countryNameHere, 1998-05-02,
6, SomeoneElse Joined Here, 21 98535 1218, whereland, Far far away, 1989-11-15,
5, AnotherCustomer, 21 85482 5245, somecity, Somewhereland, 1999-08-04,
Page2:
ID, PRICE, STOCK, ASDF, BASDF, CASDF,
第3页:
ID, NAME, PRICE, DESCRIPTION,
2, pen, 1.5, The pen is mightier than the sword,
3, pencil, 1.0, Can be used to write,
4, RPG, 150.0, well that escalated quickly, huh,
等等
我想知道是否有一种方法将文本分成不同的页面,如上所示,或者有什么替代方法将文件类型从文本转换为工作表,以便我可以将其分成不同的页面
注:我需要用python编写代码,因为我正在使用pydrive上传文件
编辑:由@Tanaike解决。寻找@Tanaike解决方案的重要调试:
我想再次感谢@Tanaike,感谢他对我的解决方案的耐心和奉献,感谢他在调试过程中的帮助。
>
您有一个如下所示的文本文件。此文本文件放在您的谷歌驱动器中。您知道文本文件的文件ID。
ID, NAME, MOBILE, CITY, COUNTRY, BIRTHDAY,
3, NameGoesHere1, 21 98658 5548, abcity, countryNameHere, 1998-05-02,
6, SomeoneElse Joined Here, 21 98535 1218, whereland, Far far away, 1989-11-15,
5, AnotherCustomer, 21 85482 5245, somecity, Somewhereland, 1999-08-04,
ID, PRICE, STOCK, ASDF, BASDF, CASDF,
ID, NAME, PRICE, DESCRIPTION,
2, pen, 1.5, The pen is mightier than the sword,
3, pencil, 1.0, Can be used to write,
4, RPG, 150.0, well that escalated quickly, huh,
EMPTY,
names,
goofs,
ID, FLAVOR,
您希望通过分隔每一空行的文本数据,将值放入单个工作表中。
>
选项卡1
ID, NAME, MOBILE, CITY, COUNTRY, BIRTHDAY,
3, NameGoesHere1, 21 98658 5548, abcity, countryNameHere, 1998-05-02,
6, SomeoneElse Joined Here, 21 98535 1218, whereland, Far far away, 1989-11-15,
5, AnotherCustomer, 21 85482 5245, somecity, Somewhereland, 1999-08-04,
表2
ID, PRICE, STOCK, ASDF, BASDF, CASDF,
表5
ID, FLAVOR,
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一。
我认为您的目标很难实现,或者仅仅通过电子表格的内置功能可能无法实现。所以在这个答案中,我想建议使用谷歌应用程序脚本来实现您的目标。
此示例脚本的流程如下所示。
fileId
这样,脚本就可以工作了。
function myFunction() {
var fileId = "###"; // Please set the file ID of text file.
var newSpreadsheetName = "sampleSpreadsheet"; // Please set new Spreadsheet name.
var data = DriveApp.getFileById(fileId).getBlob().getDataAsString();
var temp = [];
var parsedData = Utilities.parseCsv(data).reduce(function(ar, e, i, d) {
if (e.join("")) {
temp.push(e);
} else {
ar.push(temp);
temp = [];
}
if (i == d.length - 1) ar.push(temp);
return ar;
}, []);
var ss = SpreadsheetApp.create(newSpreadsheetName);
parsedData.forEach(function(e, i) {
var sheet = i == 0 ? ss.getSheets()[0] : ss.insertSheet();
sheet.getRange(1, 1, e.length, e[0].length).setValues(e);
})
}
如果我误解了你的问题,而这不是你想要的方向,我道歉。
我可以像上面那样理解。在这种情况下,将使用驱动器API和工作表API。驱动器API从Google驱动器上的文本文件检索数据。Sheets API使用这些值创建新的电子表格。在本例中,为了使用Sheets API,我使用了google API python客户端。因此,我还将驱动API与google API python客户端一起使用。
fileId = '###' # Please set the file ID of text file.
sheets = build('sheets', 'v4', credentials=creds)
drive = build('drive', 'v3', credentials=creds)
# Retrieve data from Google Drive and parse data as an array.
data = drive.files().get_media(fileId=fileId).execute()
csvData = [row.split(",") for row in str(data, 'utf-8').split("\n")]
ar = []
temp = []
for i, row in enumerate(csvData):
if "".join(row) != "":
row = [v.strip() for v in row]
temp.append(row)
else:
ar.append(temp)
temp = []
if i == len(csvData) - 1:
ar.append(temp)
sheetsObj = []
valuesUpdateReq = []
for i, sheet in enumerate(ar):
if bool(sheet):
sheetName = "Sheet" + str(i + 1)
sheetsObj.append({"properties": {"title": sheetName}})
valuesUpdateReq.append({"values": sheet, "range": sheetName, "majorDimension": "ROWS"})
# Request to Sheets API.
body = {"properties": {"title": "sampleSpreadsheet"}, "sheets": sheetsObj}
res1 = sheets.spreadsheets().create(body=body).execute()
batch_update_values_request_body = {"data": valuesUpdateReq, "valueInputOption": "USER_ENTERED"}
res2 = sheets.spreadsheets().values().batchUpdate(spreadsheetId=res1["spreadsheetId"], body=batch_update_values_request_body).execute()
print(res2)
credentials=creds
,请检查python的快速启动
问题内容: 将SQL数据库(例如1个表)转换为mongoDB文档的最佳方法是什么? 我想我可以使用C#驱动程序并实现一个循环,该循环选择表中的每一行并将其保存在Mongo中。但是,我正在寻找一种转换大量数据的更好方法。 问题答案: 司机的方式是FAR最直接的。导入/导出工具非常棒,但 前提 是您必须同时使用它们。如果您的表中包含日期,并且您尝试从数据库中导出并导入到mongo中,那么您将大吃一惊。
我正在使用spyder IDE进行我的语音到文本转换项目,该项目使用谷歌语音到文本api。我在代码中集成了谷歌语音和文本,出现了类似“配额耗尽”的错误。在谷歌控制台的仪表板上,我可以看到可用的配额。 > 错误 文件"C:\Program Data\Anaconda3\lib\site-包\speech_recognition__init__. py",第932行,在recognize_google
在下面的示例中,我们试图将XML数据转换为HTML
问题内容: 我看过很多关于此的文章,但它们似乎已经过时,例如,没有一个Google Docs Spreadsheet网址具有关键参数。 然后,我阅读了此内容以访问数据 https://developers.google.com/gdata/samples/spreadsheet_sample 我的电子表格位于:https : //docs.google.com/spreadsheets/d/1SK
问题内容: 我正在创建一个HTML表,将在Excel中作为电子表格打开。我可以使用哪种HTML标记或CSS样式“讲述” Excel以将单元格的内容显示为文本? 问题答案: 您可以将格式应用于数字,文本,日期等的单元格。 请参阅我以前关于此的答案:HTML toExcel:如何告诉Excel将列视为数字? (已调整的代码段) 如果将CSS类添加到页面: 并在您的TD上拍那些课,行得通吗?
我有一堆XML文档(源),需要将它们转换为具有不同结构(目标)的POJO。我的第一个明显的想法是使用JAXB和XSLT的组合。然而,在一些问题上,我不确定这是否合适。 我无法访问源的XSD。 我不需要目标作为XML结构,而只需要作为POJOs。 然后我想创建一个映射表,比如。 然而,这将导致大量“映射”代码,特别是在涉及复杂数据类型的情况下。 你对我如何实施这一点有什么建议吗?